Features Plugins and Tools

Table of contents -->

This post is a quick reference tool for authors on this site.

All of the features, plugins, tools, code snippets and online services used in the Post Composer/Editor on this site are demonstrated and documented here.


Style Guide


[floatl]Topic Post Formatting Using Tags and Categories[/floatl]


Extra Bold Text

****Extra Bold Text****


Tiny Text

[small]Tiny Text[/small]


Copy-Paste Symbols

→ ✎ :lion:

https://www.dofactory.com/html/charset/symbols

https://www.toptal.com/designers/htmlarrows/symbols/

https://www.w3schools.com/charsets/ref_emoji.asp

https://www.rapidtables.com/web/html/html-codes.html

https://www.w3schools.com/html/html_symbols.asp

https://coolsymbol.com/

https://www.alt-codes.net/

https://fonts.google.com/icons


Image Float

Float Right[floatr]site-plugins[/floatr]

[floatr]![myimage|126x68](upload://myimage.webp)[/floatr]

Float Left[floatl]site-plugins[/floatl]

[floatl]![myimage|126x68](upload://myimage.webp)[/floatl]


Boxed Content

– Uses CSS Box-Shadow
– Any content including HTML

Defaults to 100% width
<div data-theme-boxed>
   <iframe src="https://microchic.com"></iframe>
</div>

– Option to add dash and following: 5, 10, 15, 20, 25, 30, 33, 35, 40, 5, 50, 55, 60, 65, 66, 70, 75, 80, 85, 90, 95

– Boxes can be nested as well

i.e. for 50% width use

<div data-theme-boxed-50>
   <iframe src="https://microchic.com"></iframe>
</div>

Copy PDF Text to a Topic/Post

  1. Open the .pdf file in Adobe Acrobat
  2. File → Export To → Word
  3. Select All (Ctrl-A), Copy (Ctrl-C)
  4. Paste (Ctrl-V) into the Composer

OR (if that doesn’t work)

  1. Print PDF to Microsoft XPS Document Writer
  2. Print PDF to Microsoft Print to PDF
  3. Open PDF in Acrobat
  4. Select/Copy all text
  5. Paste text into EditPad Pro and Select All
  6. Select all in EditPad Pro
  7. Convert → Lines
  8. – Line Breaks → Wrapping
  9. – Single → Double Spacing

Copy PDF Page to a Topic/Post

  1. Open PDF in Acrobat
  2. Export To → .rtf
  3. Select/Copy a page (each page in the .rtf file is a.jpg image)
  4. Paste into Composer


Embed a PDF from Google Drive

(This is my preferred method for embedding PDFs because they are responsive to window resizing.)

  1. Share
  2. Copy Share Link
  3. Open Share Link in a New Tab
  4. Click the 3 Vertical Dots in the Top Right Corner
  5. Select Embed Item
  6. Copy the Displayed iFrame Code
  7. Paste it in the Discourse Editor

A Test PDF on Google Drive is embedded here below which you can also << Download Here >>

<iframe src="https://drive.google.com/file/d/1KQ-jn7R0NmZxw955QaPu3lvLFh5zpnDe/preview" width="640" height="480" allow="autoplay"></iframe>

Popup Content - Inline Footnotes

Text [1]

Text ^[Plain text here.]

Text and Image Upload [2]

Text and Image Upload [^1]
[^1]: Text and Image Upload
![myimage|200x200](upload://myimage.jpeg)

External iFrame [3]

External iFrame ^[<iframe src="https://microchic.com/">]

HTML Content [4]

^[<h2>HTML Content</h2>[floatr]![brainstorm-trans-600x400|150x100](upload://9zi11dQwKXOTwFwmnXikGUtfjN3.webp)[/floatr]<p>When you...</p>]

Scrollable Content

What is Open Source Culture?[floatr]brainstorm-trans-600x400[/floatr]

When you encounter an open source group for the first time, it may be a bewildering experience. Whether posting to a mailing list for the first time, blogging about the project you’re taking on or hanging out on an IRC channel - the way people interact, and what they expect from each other is pretty different than in classroom or with friends and family.

open-source-culture

Openness and Sharing

Open source communication can vary a lot. A core value held in common is that sharing code is good. Regardless of license, language or indentation style, open source developers create, share and modify source code together.

Working on code together means a lot of things: transparency, directness and cooperation are words that are often mentioned by developers when describing the process. It can involve bug reports, code refactoring, implementing new features, documentation, project management and advocacy.

Amazingly, the ways in which people actually share code are as varied as the individuals involved. Even if you have previous experience with other open source projects, keep in mind that you still need to take the time to learn how the new open source project works, and acquaint yourself with their particular brand of sharing.

One aspect of “open culture” is that people are informal. People address each other by first name. They tend to speak directly to one another, regardless of social status or formal title. Disagreements about code, whether as profound as which algorithm is most appropriate, or as seemingly mundane as how many spaces are used for indentation, are aired in public. This process is very intimidating to newcomers, who might be concerned about having their words immortalized on the Internet, and worse, saying something wrong or embarrassing. The only way to get over this fear is to practice and participate publicly.

Although “open culture” is generally informal, it is important to remember that you still need to mind your manners when participating in conversations.

Remote Communication

Many projects involve individuals who are working not only in different cities, countries and continents, but collaborating across major cultural and language differences. And rather than having procedures or policies on how to interact with one another handed down from HR departments or other authorities, communication practices evolve between individuals over time.

Because there are few rules around working together on open source projects, there is a lot of freedom to share directly with one another. This freedom is at the core of what attracts many people to open source software. Multi-cultural projects offer an incredible opportunity to share knowledge between individuals directly. With sharing, however, comes a responsibility to inform new participants about expectations for communication and ways to solve misunderstandings to the benefit of all.

Be mindful of cultural assumptions about race, gender, sexual orientation and disability. People often make assumptions, have stereotypes or are biased in ways that no one can control. The best practice is to assume that people don’t mean any harm, and when they’re told respectfully that they’ve offended or hurt someone, that they’ll stop whatever it is that they are doing that is harmful.

All that tolerant rhetoric aside, it is never productive for an open source project to allow individuals who consistently try to cause harm to others to do so. If you are causing undue problems don’t be surprised if you are asked to discontinue your participation regardless of your contributions. It’s often better for an open source project to ask someone to leave, than to allow them to harm others and in turn, cause other productive members of your team to depart.

Abbreviations and Slang

People come up with abbreviations and slang that are meaningful inside the group, but not necessarily to outsiders. Ask questions when you don’t understand a term, a joke or some arcane bit of project lore.

Here are a few useful resources for teasing out meaning from initialisms, acronyms and abbreviations:

Volunteerism and Gift Economies

Donated time is the life blood of open source projects. Many individuals contribute their time and energy without any expectation of compensation or even a simple “thank you” in return.

Contributions to projects are often self-directed, with developers having a personal itch to scratch in the form of a new feature, by correcting a bug that they’ve encountered or by implementing something from a TODO list. Projects operating in this way may seem chaotic if you are only familiar with top-down management - where teachers, professors or bosses tell you what to do and when. Of course, some projects do have clearly defined project management, with milestones and tasks meted out carefully.

Because many (or in some cases all) contributors are volunteering, methods of coercion available to businesses are not available. The best way to collaborate is to behave in a way that encourages others, and ultimately, makes people want to contribute. Some easy ways to encourage volunteerism include:

  • Saying thank you
  • Giving compliments when they are deserved, regularly and in public
  • Publicizing cool hacks and features as they are implemented, in blog posts and on the mailing lists
  • Promptly committing useful code
  • Responding promptly to requests for information
  • Clearly defining ways to contribute to your project (TODO lists are great!)

Consider treating every patch like it is a gift. Being grateful is good for both the giver and the receiver, and invigorates the cycle of virtuous giving.

Overall, your goal is to help create and maintain an atmosphere around contribution that is enjoyable. What that means will vary significantly depending on the project, but certainly the above points apply to any project.


Otter.ai Embeds

(https://otter.ai)

<div data-theme-otter>
   <iframe src="https://otter.ai/u/vfCA85nskUffo_kZ5_NhfdAg2BA?noGapBottom=true"></iframe>
</div>

[floatl]Otter.ai Audio Posts[/floatl]

image-otter-iframe

<iframe src="https://framer.cc/our-journey-together/"></iframe>

iPhone Video Embeds

85-year old Gloria filled 33 (55-gallon) trash bags cleaning up our yard today…

  1. Capture on my iPhone
  2. Download the .mov file from my iCloud Photos
  3. Upload the .mov file to Adobe’s free online .mov to .mp4 converter and download the .mp4
  4. Upload the .mp4 to my Cloudinary Media Library
  5. Copy the Cloudinary Share Link directly into the Topic Post
  6. Enjoy!

YouTube Embed

image-youtube-light-iframe

<iframe src="https://microchic.dev/blockchain-simplified/"></iframe>

Vimeo Embeds

https://player.vimeo.com/video/743344591

image-vimeo-video-embed


[floatl]External iFrame[/floatl]

<iframe src="https://microchic.fm" width="600px" height="500px"></iframe>

[floatl]Jump Menu LiveFrame Selector[/floatl]

<iframe src="https://framer.cc/jumpy-liveframe-selector/" width="600px" height="540px"></iframe>

[floatl]Auto-Scaling iFrame[/floatl]

<iframe src="https://framer.cc/scaling-iframe-css-transforms/"></iframe>

[floatl]Auto-Scaling Jump Menu LiveFrame Selector[/floatl]

<iframe src="https://framer.cc/auto-scaling-jumpy-liveframes/"></iframe>

[floatl]Word Cloud Generators[/floatl]

[floatr]site-plugins[/floatr]

Copy-Paste Text to Generate SVG (or other image)

URL or Copy-Paste Text to Generate PNG

Otter.ai (Also has an option/feature to Generate Word Cloud from Transcripts)


Auto Abbrify

– What is AI? ← Hover Over
– Affects Topics, not Replies


Auto Linkify

MicroChic.FM


Inline Audio Recorder


Clickable Topic

Topic List Test


Docs Card Filter

Docs Page Test


Keyboard Text

– Can also use for creating boxed links Keyboard Text Here


Included [data-theme] CSS (in common.css)

div[data-theme-boxed] {
    border-left: 0;
    background-color: #F5F2EF;
    padding: 1em;
    box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
    border-radius: 4px;
}

div[data-theme-boxed-95] {
    width: 95%;
    border-left: 0;
    background-color: #F5F2EF;
    padding: 1em;
    box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
    border-radius: 4px;
}

div[data-theme-boxed-90] {
    width: 90%;
    border-left: 0;
    background-color: #F5F2EF;
    padding: 1em;
    box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
    border-radius: 4px;
}

div[data-theme-boxed-85] {
    width: 85%;
    border-left: 0;
    background-color: #F5F2EF;
    padding: 1em;
    box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
    border-radius: 4px;
}

div[data-theme-boxed-80] {
    width: 80%;
    border-left: 0;
    background-color: #F5F2EF;
    padding: 1em;
    box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
    border-radius: 4px;
}

div[data-theme-boxed-75] {
    width: 75%;
    border-left: 0;
    background-color: #F5F2EF;
    padding: 1em;
    box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
    border-radius: 4px;
}

div[data-theme-boxed-70] {
    width: 70%;
    border-left: 0;
    background-color: #F5F2EF;
    padding: 1em;
    box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
    border-radius: 4px;
}

div[data-theme-boxed-66] {
    width: 66.666%;
    border-left: 0;
    background-color: #F5F2EF;
    padding: 1em;
    box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
    border-radius: 4px;
}

div[data-theme-boxed-65] {
    width: 65%;
    border-left: 0;
    background-color: #F5F2EF;
    padding: 1em;
    box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
    border-radius: 4px;
}

div[data-theme-boxed-60] {
    width: 60%;
    border-left: 0;
    background-color: #F5F2EF;
    padding: 1em;
    box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
    border-radius: 4px;
}

div[data-theme-boxed-55] {
    width: 55%;
    border-left: 0;
    background-color: #F5F2EF;
    padding: 1em;
    box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
    border-radius: 4px;
}

div[data-theme-boxed-50] {
    width: 50%;
    border-left: 0;
    background-color: #F5F2EF;
    padding: 1em;
    box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
    border-radius: 4px;
}

div[data-theme-boxed-45] {
    width: 45%;
    border-left: 0;
    background-color: #F5F2EF;
    padding: 1em;
    box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
    border-radius: 4px;
}

div[data-theme-boxed-40] {
    width: 40%;
    border-left: 0;
    background-color: #F5F2EF;
    padding: 1em;
    box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
    border-radius: 4px;
}

div[data-theme-boxed-35] {
    width: 35%;
    border-left: 0;
    background-color: #F5F2EF;
    padding: 1em;
    box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
    border-radius: 4px;
}

div[data-theme-boxed-33] {
    width: 33.333%;
    border-left: 0;
    background-color: #F5F2EF;
    padding: 1em;
    box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
    border-radius: 4px;
}

div[data-theme-boxed-30] {
    width: 30%;
    border-left: 0;
    background-color: #F5F2EF;
    padding: 1em;
    box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
    border-radius: 4px;
}

div[data-theme-boxed-25] {
    width: 25%;
    border-left: 0;
    background-color: #F5F2EF;
    padding: 1em;
    box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
    border-radius: 4px;
}

div[data-theme-boxed-20] {
    width: 20%;
    border-left: 0;
    background-color: #F5F2EF;
    padding: 1em;
    box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
    border-radius: 4px;
}

div[data-theme-boxed-15] {
    width: 15%;
    border-left: 0;
    background-color: #F5F2EF;
    padding: 1em;
    box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
    border-radius: 4px;
}

div[data-theme-boxed-10] {
    width: 10%;
    border-left: 0;
    background-color: #F5F2EF;
    padding: 1em;
    box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
    border-radius: 4px;
}

div[data-theme-boxed-5] {
    width: 5%;
    border-left: 0;
    background-color: #F5F2EF;
    padding: 1em;
    box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
    border-radius: 4px;
}

div[data-theme-otter] {
  overflow:hidden;
  box-shadow: 0 1.36px 8.896px #c4b59d, 0 0 1px !important;
  border-radius: 4px;
  border-top: 10px solid #fff;
  border-right: 10px solid #fff;
  border-bottom: 3px solid #fff;
  padding-top: 30px;
}

.cooked div[data-theme-otter] {
  iframe {
        box-shadow: none !important;
  }
}

div[data-theme-otter] {
  iframe {
        margin: -90px 0 0;
        height: 440px !important;
  }
}

[data-theme="jonebox"] {
    border: 5px solid var(--primary-low);
    margin: 1em 0;
    padding: 1em;
    font-size: var(--font-0);
    background: var(--secondary);
    width: 40%;
}

div[data-theme-hide-details] {
  details {
    display: none;
  }
}


Inline TOC Bookmarklet


Allow Admins to Permanently Delete

There is a hidden site setting permanently_delete

cd /var/discourse
./launcher enter app
rails c
SiteSetting.can_permanently_delete=true
exit
exit

Allow Discourse in iFrames

There is a hidden site setting allow_embedding_site_in_an_iframe

cd /var/discourse
./launcher enter app
rails c
SiteSetting.allow_embedding_site_in_an_iframe=true
exit
exit

Allow Sub-sub Categories

There is a hidden site setting max_category_nesting

cd /var/discourse/

./launcher enter app

rails c

SiteSetting.max_category_nesting = 3

exit

exit


All of the Hidden Site Settings

Any more of these can also be enabled in the app.yml file (the section at the bottom), i.e…

## Any custom commands to run after building
run:
  - exec: echo "Beginning of custom commands"
  - exec: rails r "SiteSetting.max_category_nesting=3"
  - exec: rails r "SiteSetting.allow_embedding_site_in_an_iframe=true"
  - exec: rails r "SiteSetting.can_permanently_delete=true"
  ## If you want to set the 'From' email address for your first registration, uncomment and change:
  ## After getting the first signup email, re-comment the line. It only needs to run once.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "End of custom commands"

Discourse on Github

https://github.com/discourse/all-the-themes/tree/main/themes


Extra Site Images (Jen’s Uploaded)

wrench-icon


  1. Plain text here. ↩︎

  2. Text and Image Upload
    cookie-monster ↩︎