文章中嵌入代码块

In my experience, supplementing study with practical exercises greatly improves my understanding of a topic. This is especially true when I can test my knowledge as I go and receive instant feedback for each question.

以我的经验,通过实践练习补充学习可以极大地提高我对某个主题的理解。 当我可以随时测试自己的知识并收到每个问题的即时反馈时,尤其如此。

The multiple choice quiz format is perfect for this. I developed a method to embed multiple choice questions in the math articles I write for freeCodeCamp, and I want to show other authors how to do the same.

多项选择测验格式是完美的选择。 我开发了一种方法,可以在为freeCodeCamp编写的数学文章中嵌入多项选择题,并且我想向其他作者展示如何做。

如何在文章中添加代码 (How to add code to your article)

The Ghost editor allows you to embed blocks of code throughout an article. The code editor can be accessed by clicking the round button with a plus sign (+) used for adding images, YouTube videos, and so on:

Ghost编辑器使您可以在整个文章中嵌入代码块。 可以通过单击带有加号(+)的圆形按钮来访问代码编辑器,该加号用于添加图像,YouTube视频等:

Click on the "HTML" button to add an editor to the article. The editor supports HTML, CSS, and even JavaScript.

单击“ HTML”按钮,将编辑器添加到文章。 该编辑器支持HTML,CSS甚至JavaScript。

Once you start adding code, click anywhere outside the editor frame to render the code and view your progress. Double click on the rendered output to reopen the editor window:

一旦开始添加代码,请在编辑器框架之外的任何位置单击以呈现代码并查看进度。 双击渲染的输出以重新打开编辑器窗口:

To test the functionality of your code, save the article by pressing Ctrl/⌘ + S, then click on the "View Preview" button that appears in the bottom left corner:

要测试代码的功能,请按Ctrl /⌘+ S保存文章,然后单击左下角出现的“查看预览”按钮:

Your article will open in a separate tab where you can see how your code will be rendered once your article is published. Take some time to check on the styling and functionality of your multiple choice quiz.

您的文章将在单独的标签中打开,您可以在其中看到发布文章后代码的呈现方式。 花一些时间检查选择题的样式和功能。

Boilerplate code for the multiple choice quiz is available in the next section. All you need to do is paste it into your own article and change the question and answers.

下一部分提供了用于多项选择测验的样板代码。 您需要做的就是将其粘贴到您自己的文章中,然后更改问题和答案。

多项选择测验如何运作 (How the multiple choice quiz works)

You can add as many different questions as you want. However, while your article might have multiple quizzes, they're all contained within a single HTML body behind the scenes. Each question element starts with the following code:

您可以根据需要添加任意多个不同的问题。 但是,尽管您的文章可能有多个测验,但它们都包含在幕后的单个HTML正文中 。 每个问题元素均以以下代码开头:

<div style='transform: scale(0.65); position: relative; top: -100px;'><h3>WRITE YOUR QUESTION HERE</h3><p>Choose 1 answer</p><hr />

Each of the following div elements contains a possible answer:

以下每个div元素均包含一个可能的答案:

...<div id='block-11' style='padding: 10px;'><label for='option-11' style=' padding: 5px; font-size: 2.5rem;'><input type='radio' name='option' value='6/24' id='option-11' style='transform: scale(1.6); margin-right: 10px; vertical-align: middle; margin-top: -2px;' />ANSWER 1</label><span id='result-11'></span></div><hr /><div id='block-12' style='padding: 10px;'><label for='option-12' style=' padding: 5px; font-size: 2.5rem;'><input type='radio' name='option' value='6' id='option-12' style='transform: scale(1.6); margin-right: 10px; vertical-align: middle; margin-top: -2px;' />ANSWER 2</label><span id='result-12'></span></div><hr />...

At the time of writing, Ghost's embedded code editor does not support template literals, so some things have to be hard coded.

在撰写本文时,Ghost的嵌入式代码编辑器不支持模板文字,因此某些事情必须进行硬编码。

Remember that all the questions are essentially loaded together behind the scenes, so the two digit numbers in each id represent the following:

请记住,所有问题实际上都是在后台加载的,因此每个id的两位数字表示以下内容:

  • The first digit indicates the order of the multiple choice question in the article (1 is question one, 2 is question two, and so on)

    一位数字表示文章中多项选择题的顺序(1是问题一,2是问题二,依此类推)

  • The second digit indicates the order of each possible answer within its question block (1 is answer choice one, 2 is answer choice two, etc.)

    第二个数字指示其问题块中每个可能答案的顺序(1是答案选择一,2是答案选择二,依此类推)

For example, block-12 represents question 1/answer choice 2, while block-43 is question 4/answer choice 3.

例如, block-12代表问题 1 /答案选择2 ,而block-43 问题4 /答案选择3

This indexing convention is necessary for different question blocks to function independently from each other.

该索引约定对于不同的问题块彼此独立运行是必需的。

Similar logic applies to the function names responsible for interactivity. The code that handles user interaction is placed within <script> tags and consists of two parts. First part is the function that evaluates answers and displays results:

类似的逻辑适用于负责交互的功能名称。 处理用户交互的代码位于<script>标记内,并且由两部分组成。 第一部分是评估答案并显示结果的功能:

function displayAnswer1() {if (document.getElementById('option-11').checked) {document.getElementById('block-11').style.border = '3px solid limegreen'document.getElementById('result-11').style.color = 'limegreen'document.getElementById('result-11').innerHTML = 'Correct!'}if (document.getElementById('option-12').checked) {document.getElementById('block-12').style.border = '3px solid red'document.getElementById('result-12').style.color = 'red'document.getElementById('result-12').innerHTML = 'Incorrect!'showCorrectAnswer1()}if (document.getElementById('option-13').checked) {document.getElementById('block-13').style.border = '3px solid red'document.getElementById('result-13').style.color = 'red'document.getElementById('result-13').innerHTML = 'Incorrect!'showCorrectAnswer1()}if (document.getElementById('option-14').checked) {document.getElementById('block-14').style.border = '3px solid red'document.getElementById('result-14').style.color = 'red'document.getElementById('result-14').innerHTML = 'Incorrect!'showCorrectAnswer1()}}

Like the name suggests, the displayAnswer1 function handles the first question within an article. If there's a third question in your article, displayAnswer3 will handle it.

顾名思义, displayAnswer1函数处理文章中的第一个问题。 如果您的文章中还有第三个问题,则displayAnswer3将处理该问题。

In the example above, option-11 is the correct answer, and the styling in the first if block is updated to show the right answer was selected. If any of the other incorrect answers are selected, the styling is updated to reflect that.

在上面的示例中, option-11是正确的答案,并且第一个if块中的样式已更新为显示了正确的答案。 如果选择了其他任何不正确的答案,则会更新样式以反映出来。

Feel free to play with the displayAnswer_ functions in your own article. Just remember to attach the appropriate styling to the correct and incorrect answers.

随意在您自己的文章中使用displayAnswer_函数。 只要记住将正确的样式附加到正确和不正确的答案即可。

Here's the second part of the code that handles user interaction:

这是处理用户交互的代码的第二部分:

function showCorrectAnswer1() {let showAnswer1 = document.createElement('p')showAnswer1.innerHTML = 'Show Corrent Answer'showAnswer1.style.position = 'relative'showAnswer1.style.top = '-180px'showAnswer1.style.fontSize = '1.75rem'document.getElementById('showanswer1').appendChild(showAnswer1)showAnswer1.addEventListener('click', () => {document.getElementById('block-11').style.border = '3px solid limegreen'document.getElementById('result-11').style.color = 'limegreen'document.getElementById('result-11').innerHTML = 'Correct!'document.getElementById('showanswer1').removeChild(showAnswer1)})}

This function is called showCorrectAnswer1 because it handles the first multiple choice question in the article. You'll have to add showCorrectAnswer2, showCorrectAnswer3, and more if your article has more than one question.

该函数称为showCorrectAnswer1因为它处理了文章中的第一个多选问题。 如果您的文章有多个问题,则必须添加showCorrectAnswer2showCorrectAnswer3以及更多内容。

Please play around with the styling and dimensions used throughout the code, and customize it to your taste. Also, I'm sure there are other ways to implement multiple choice quizzes, but this is mine, and I'm happy to share it with you.

请试用整个代码中使用的样式和尺寸,并根据自己的喜好对其进行自定义。 另外,我敢肯定还有其他方法可以实施多项选择测验,但这是我的,很高兴与您分享。

Here's the full code and a working example:

这是完整的代码和一个有效的示例:

<div style='transform: scale(0.65); position: relative; top: -100px;'><h3>What fraction of a day is 6 hours?</h3><p>Choose 1 answer</p><hr /><div id='block-11' style='padding: 10px;'><label for='option-11' style=' padding: 5px; font-size: 2.5rem;'><input type='radio' name='option' value='6/24' id='option-11' style='transform: scale(1.6); margin-right: 10px; vertical-align: middle; margin-top: -2px;' />6/24</label><span id='result-11'></span></div><hr /><div id='block-12' style='padding: 10px;'><label for='option-12' style=' padding: 5px; font-size: 2.5rem;'><input type='radio' name='option' value='6' id='option-12' style='transform: scale(1.6); margin-right: 10px; vertical-align: middle; margin-top: -2px;' />6</label><span id='result-12'></span></div><hr /><div id='block-13' style='padding: 10px;'><label for='option-13' style=' padding: 5px; font-size: 2.5rem;'><input type='radio' name='option' value='1/3' id='option-13' style='transform: scale(1.6); margin-right: 10px; vertical-align: middle; margin-top: -2px;' />1/3</label><span id='result-13'></span></div><hr /><div id='block-14' style='padding: 10px;'><label for='option-14' style=' padding: 5px; font-size: 2.5rem;'><input type='radio' name='option' value='1/6' id='option-14' style='transform: scale(1.6); margin-right: 10px; vertical-align: middle; margin-top: -2px;' />1/6</label><span id='result-14'></span></div><hr /><button type='button' onclick='displayAnswer1()' style='width: 100px; height: 40px; border-radius: 3px; background-color: lightblue; font-weight: 700;'>Submit</button>
</div>
<a id='showanswer1'></a>
<script>//    The function evaluates the answer and displays resultfunction displayAnswer1() {if (document.getElementById('option-11').checked) {document.getElementById('block-11').style.border = '3px solid limegreen'document.getElementById('result-11').style.color = 'limegreen'document.getElementById('result-11').innerHTML = 'Correct!'}if (document.getElementById('option-12').checked) {document.getElementById('block-12').style.border = '3px solid red'document.getElementById('result-12').style.color = 'red'document.getElementById('result-12').innerHTML = 'Incorrect!'showCorrectAnswer1()}if (document.getElementById('option-13').checked) {document.getElementById('block-13').style.border = '3px solid red'document.getElementById('result-13').style.color = 'red'document.getElementById('result-13').innerHTML = 'Incorrect!'showCorrectAnswer1()}if (document.getElementById('option-14').checked) {document.getElementById('block-14').style.border = '3px solid red'document.getElementById('result-14').style.color = 'red'document.getElementById('result-14').innerHTML = 'Incorrect!'showCorrectAnswer1()}}// the functon displays the link to the correct answerfunction showCorrectAnswer1() {let showAnswer1 = document.createElement('p')showAnswer1.innerHTML = 'Show Corrent Answer'showAnswer1.style.position = 'relative'showAnswer1.style.top = '-180px'showAnswer1.style.fontSize = '1.75rem'document.getElementById('showanswer1').appendChild(showAnswer1)showAnswer1.addEventListener('click', () => {document.getElementById('block-11').style.border = '3px solid limegreen'document.getElementById('result-11').style.color = 'limegreen'document.getElementById('result-11').innerHTML = 'Correct!'document.getElementById('showanswer1').removeChild(showAnswer1)})}
</script>

一天的哪一部分是6个小时? (What fraction of a day is 6 hours?)

Choose 1 answer

选择1个答案











You can also find the complete boilerplate code here on GitHub.

您还可以在GitHub上找到完整的样板代码。

翻译自: https://www.freecodecamp.org/news/multiple-choice-quiz-template/

文章中嵌入代码块

文章中嵌入代码块_如何在您的文章中嵌入多项选择测验问题相关推荐

  1. python代码块-Python中的代码块和非代码块是什么

    Python中的代码块和非代码块是什么 发布时间:2020-06-26 13:53:30 来源:亿速云 阅读:150 今天就跟大家聊聊有关Python中的代码块和非代码块是什么,可能很多人都不太了解, ...

  2. java 静态代码块_关于Java你不知道的那些事之代码块

    前言 普通代码块:在方法或语句中出现的{},就被称为代码块 静态代码块:静态代码块有且仅加载一次,也就是在这个类被加载至内存的时候 普通代码块和一般语句执行顺序由他们在代码中出现的次序决定,先出现先执 ...

  3. word 代码块_如何优雅的写好 Pythonic 代码?

    (点击上方公众号,可快速关注一起学Python) Python 与其它语言(比如Java或者C++)相比有比较大的区别,其中最大的特点就是非常简洁.如果按照其它语言的思路来写Python代码,则会使得 ...

  4. java中普通代码块,构造代码块,静态代码块的区别及代码示例

    本文转自:http://www.cnblogs.com/sophine/p/3531282.html 执行顺序:(优先级从高到低)静态代码块>main方法>构造代码块>构造方法. 其 ...

  5. Java中普通代码块,构造代码块,静态代码块区别

    Java中普通代码块,构造代码块,静态代码块区别及代码 示例 //执行顺序:(优先级从高到低.)静态代码块>mian方法 >构造代码块>构造方法. 其中静态代码块只执行一次.构造代码 ...

  6. 代码和普通的java_Java中普通代码块,构造代码块,静态代码块区别及代码示例...

    对静态代码块以及构造函数的执行先后顺序,一直很迷惑,看了孙伟琴老师的<java面向对象编程>又结合毕老师的java基础视频中的讲解,现用下面的这段小程序来简明扼要的叙述一下,以加深理解,与 ...

  7. python代码块使用缩进表示-python中的代码块使用缩进来表示。

    [填空题]Python 运算符中用来计算整商的是( ). (2.0分) [判断题]python中的多行语句可以使用反斜杠来实现. (2.0分) [填空题]在python中,int表示的数据类型是( ) ...

  8. 关于java中普通代码块、构造代码块与静态代码块

    1.普通代码块 public static void main(String[] args) { /*普通代码块: *直接定义在在方法或语句中出现"{普通代码的执行语句}"的就称为 ...

  9. php的完整代码块,简单测试了一下php中的代码块、内部类等知识

    简单测试了一下php中的代码块.内部类等知识<?php class a { public $b; public function print_result() { //普通代码块,但已经不是ja ...

最新文章

  1. Fedora 11-Alpha试用手记
  2. win2008的搜索功能就是个鸡肋
  3. notepad++正则表达式去掉关键字所在行
  4. html怎么设计自动出现提示的数据列表?怎么设计数据列表像百度一样怎么随用户输入而更新
  5. python画圣诞树代码解读_实战 | 教你用Python画各种版本的圣诞树
  6. 【字符串全排列】LeetCode 567. Permutation in String
  7. linux恢复树莓派内存卡容量,找回树莓派SD卡剩余空间
  8. Hvdc-vsc. 基于vsc的柔性直流输电模型 pscad实现
  9. 中国海水产品加工行业发展现状及趋势分析,山东省产量最高「图」
  10. 【网络】PFC背景和原理 、文档(DCB=PFC + ETS,DCBX=DCB扩展)
  11. dht11 新手原理详解(附代码)
  12. 月租最便宜的手机卡_给大家推荐几张0月租,打电话还便宜的手机卡
  13. 串口通信根据波特率计算定时器初值
  14. android 程序到手机,安卓手机怎么从电脑安装应用到手机
  15. Flink报错:exceeded checkpoint tolerable failure threshould
  16. Arranging The Sheep(移动思维)
  17. 深度学习(一):给你的数据集打标签
  18. 在PCLVisualizer中添加坐标轴和图片和颜色表
  19. DeFi明斯基时刻:压力测试与启示
  20. 学习android开发的网站

热门文章

  1. 函数返回指针类型(strchr函数)
  2. c语言 大雨 班上多个同学准备,2015年计算机二级考试《C语言》提高练习题(7)
  3. VS IIS Express 支持局域网访问
  4. JAVA-初步认识-第十三章-多线程(验证同步函数的锁)
  5. DStream算子讲解(一)
  6. hdu 4612 边连通度缩点+树的最长路径
  7. 初学 Unsupervised feature learning and deep learning--Sparse autoencoder
  8. 使用ftp搭建yum源问题解决
  9. 《WinForm开发系列之控件篇》Item13 DirectoryEntry(暂无)
  10. kafka logstash elk